#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>

void *thread_fun(void *arg)
{
    printf("线程开始运行\n");
    sleep(1);
    printf("线程结束运行\n");
}

/* 模拟线程取消 */
int main(int argc, char const *argv[])
{
    printf("主线程开始\n");
    // 1.创造线程
    pthread_t ptr;
    pthread_create(&ptr, NULL, thread_fun, NULL);

    // 2.取消线程
    pthread_cancel(ptr);

    // 3.等待线程结束
    void *result;
    pthread_join(ptr, &result);
    if (result == PTHREAD_CANCELED)
    {
        printf("线程被取消\n");
    }
    else
    {
        printf("主线程正常结束\n");
    }

    return 0;
}
